esri loader + arcgis api 实现小部件

template部分

1
2
3
4
5
6
7
8
9
10
<template>
<el-row style="box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 12px 0px;">
<el-button type="" icon="el-icon-plus" circle class="zoomin"></el-button>
<el-button type="" icon="el-icon-minus" circle class="zoomout"></el-button>
<el-button type="info" icon="el-icon-thumb" circle class="pan"></el-button>
<el-button type="info" icon="el-icon-full-screen" circle class="fullmap"></el-button>
<el-button type="" icon="el-icon-arrow-left" circle class="beforePic"></el-button>
<el-button type="" icon="el-icon-arrow-right" circle class="afterPic"></el-button>
</el-row>
</template>

js部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import * as esriLoader from 'esri-loader'
// import $ from 'jquery'

export default {
data() {
return {
xyText: '',
extent_tag: [ ],
value: '', // 选择的ID
options_power: [{
value: 'option-choose',
label: '筛选'
}, {
value: 'option-clean',
label: '清除'
}, {
value: 'option-visible',
label: '显示'
}, {
value: 'setting-extent-xy',
label: '设置坐标'
}, {
value: 'setting-extent',
label: '设置范围'
}],
xy_zdy: {},
extent_zdy: {},
centerDialogVisible: false,
centerDialogVisible_extent: false,
checked: true
}
},
// 我们需要在该组件装载之后做的事情都放在该方法里
mounted() {
esriLoader.setDefaultOptions({ version: '3.28' })
this.createMap()
},
// 我们需要执行的方法都定义在该属性里
methods: {
createMap: function() {
esriLoader.loadModules(['esri/map',
'esri/geometry/Extent',
'esri/layers/ArcGISDynamicMapServiceLayer',
'dojo/query',
'esri/toolbars/navigation',
'esri/geometry/Point',
'dojo/domReady!'], { css: true })
.then(([Map, Extent, ArcGISDynamicMapServiceLayer, query, Navigation, Point]) => {
var tjUAVurl = 'http://localhost:6080/arcgis/rest/services/Eco/BJ_td_gd_nyd/MapServer'

var map = new Map('map', {
extent: new Extent({
xmin: 114.4134760856628,
ymin: 40.13100080490112,
xmax: 118.36547288894677,
ymax: 41.64383821487438,
spatialReference: {
wkid: 4326
}
}),
logo: false
})

var tjUAVLayer = new ArcGISDynamicMapServiceLayer(tjUAVurl)
map.addLayer(tjUAVLayer)

// *************************************************************************************** //

var navToolbar = new Navigation(map)
query('.zoomin').on('click', () => {
navToolbar.activate(Navigation.ZOOM_IN)
})
query('.zoomout').on('click', () => {
navToolbar.activate(Navigation.ZOOM_OUT)
})
query('.pan').on('click', () => {
navToolbar.activate(Navigation.PAN)
})
query('.fullmap').on('click', () => {
navToolbar.zoomToFullExtent()
})
query('.beforePic').on('click', () => {
navToolbar.zoomToPrevExtent()
})
query('.afterPic').on('click', () => {
navToolbar.zoomToNextExtent()
})
}
}

效果图